FROM rust:latest
LABEL author daiqian <alexdai@vivo.com>

ENV RUSTUP_DIST_SERVER https://mirrors.tuna.tsinghua.edu.cn/rustup
ENV RUSTUP_UPDATE_ROOT https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
RUN rustup default stable && \
    rustup target add armv7a-none-eabi && \
    cargo install cargo-binutils && \
    rustup component add llvm-tools-preview && \
    rustup component add rust-src 
ADD sources.list /etc/apt/
ADD config ~/.cargo/
RUN DEBIAN_FRONTEND=noninteractive apt-get update -y && \
    apt-get install git  rustfmt wget bzip2 \
    build-essential  libncurses-dev  cppcheck   \
    gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi  qemu-system-arm    \
    python3-pip  python3-requests  -y   \
    scons \
    libclang-dev && \
	apt-get install -y --no-install-recommends python3-venv && \
    apt-get clean -y
COPY . /app
# 设置工作目录
WORKDIR /app

# 创建虚拟环境
RUN python3 -m venv myenv

# 激活虚拟环境
# 注意：在 Dockerfile 中，每个 RUN 指令都在独立的 shell 中执行，
# 因此激活虚拟环境的效果不会延续到下一个 RUN 指令。
# 我们将在每个需要虚拟环境的 RUN 指令中显式地指定虚拟环境的 Python 解释器。

# 安装 pip 依赖（在虚拟环境中）
# 使用虚拟环境中的 pip 安装 zhipuai
RUN . myenv/bin/activate && \
    pip install --no-cache-dir zhipuai

# 设置容器启动时运行的命令
# 使用虚拟环境中的 Python 解释器来运行 main.py
CMD ["./myenv/bin/python3", "/app/newTool/main.py"]